/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package jogopoo.Util;

import jogopoo.Grafico.GrafCenario;

/**
 *
 * @author acer_5542
 */
/**
 * Esta classe estende Thread, para fazer o tratamento de tempo (delay).
 * @author acer_5542
 */
public class Timer extends Thread {

    /**
     * Construtor recebe como parametro listener, que eh a classe ouvinte do tipo
     * interface TimerListener e long Tempomili que eh o tempo de delay.
     * @param listener
     * @param tempomili
     */
    public Timer(TimerListener listener, long tempomili,GrafCenario cenario) {
        this.listener = listener;
        this.tempomili = tempomili;
        this.cenario = cenario;
    }

    /**
     * Metodo sobrescrito da Classe Thread, vai fazer o "loop" do jogo.
     */
    @Override
    public void run() {
        while (!cenario.getFim()) {
            if(flag == true)
            try {
                Thread.sleep(tempomili);
                listener.update();
            } catch (InterruptedException ex) {
            }
        }
    }
/**
 * Seta a flag que pausa o jogo
 * @param flag
 */
    public void setflag(boolean flag) {
        this.flag = flag;
    }
/**
 * Retorna a flag que pausa o jogo
 * @return flag
 */
    public boolean getflag() {
        return flag;
    }
    private long tempomili;
    private TimerListener listener;
    private GrafCenario cenario;
    private boolean flag = true;
}
